#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>



int main()
{
    printf("hello world! hello linux!\n");
    return 110;
}


//int main()
//{
//    int val = 10;
//    pid_t id = fork();
//
//    if (id == 0)
//    {
//        int cnt = 5;
//        // 子进程
//        while (1)
//        {
//            printf("I am a child, pid: %d, ppid: %d, val: %d, &val: %p\n", getpid(), getppid(), val, &val);
//            sleep(1);
//            if ((cnt--) == 0)
//            {
//                val = 20;
//            }
//        }
//    }
//    else 
//    {
//        // 父进程
//        while (1)
//        {
//            printf("I am a process, pid: %d, ppid: %d, val: %d, &val: %p\n", getpid(), getppid(), val, &val);
//            sleep(1);
//        }
//    }
//
//
//    return 110;
//}
//
//

//int main()
//{
//    char* heap = (char*)malloc(20);
//    char* heap1 = (char*)malloc(20);
//    char* heap2 = (char*)malloc(20);
//    char* heap3 = (char*)malloc(20);
//    
//    printf("heap addr: %p\n", heap); 
//    printf("heap addr: %p\n", heap1);
//    printf("heap addr: %p\n", heap2);
//    printf("heap addr: %p\n", heap3);
//
//    printf("stack addr: %p\n", &heap);
//    printf("stack addr: %p\n", &heap1);
//    printf("stack addr: %p\n", &heap2);
//    printf("stack addr: %p\n", &heap3);
//    return 0;
//}
//
//int uninit_data;
//int init_data = 10;
//
//int main()
//{
//    printf("code addr: %p\n", main);
//    printf("init_data addr: %p\n", &init_data);
//    printf("uninit_data addr: %p\n", &uninit_data);
//    
//    char* heap = (char*)malloc(10);
//    printf("heap addr: %p\n", heap);
//    
//
//    printf("stack addr: %p\n", &heap);
//
//
//    return 0;
//}
